367. 有效的完全平方数

367. 有效的完全平方数

题目链接

分析

什么是完全平方数?如果一个正整数 a 是某一个整数 b 的平方,那麼這个正整数 a 叫做完全平方数。0 也可称为完全平方数
有两点需要注意

解题

public boolean isPerfectSquare(int num) {
    if(num ==0){
        return true;
    }
    int start=1,end=num;
    while(start<=end){
        int mid = start+(end-start)/2;
        if(mid == num/mid){
            // 光这个还不够,还得检查余数,才能保证是完全平方数
            if(num%mid == 0){
                return true;
            }else{
                // 如果余数不为0,那么还是大了
                end = mid-1;
            }
        }else if(mid > num/mid){
            end = mid-1;
        }else{
            start = mid+1;
        }
    }
    return false;
}

相关题

69. x 的平方根